package com.bjpowernode.controller;

import com.bjpowernode.service.FileService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;

@RestController
@RequestMapping("/file")
public class FileController {
    @Resource
    FileService fileService;

    // 上传文件
    /*@PostMapping("/{bucket}/upload") @PathVariable String bucket 的目的是从路径上解析出一个参数
    * 而根本原本是因为前端不能直接传递两个参数到后端（需要将要传递的多个参数封装到一个对象中），所以这里取巧的从路径上解析出bucket参数，然后通过@PathVariable注解获取到bucket的值
    * 而实际上在上传文件时是从其他模块调用此上传文件模块进行功能实现的（需要将要传递的多个参数封装到一个对象中）
    */
    @PostMapping("/{bucket}/upload")
    public String upload(@PathVariable String bucket, MultipartFile file) throws Exception {
        return fileService.upload(bucket, file);
    }
}
